개요
전송 계층 프로토콜(Transport Layer Protocol)은 OSI(Open Systems Interconnection) 참조 모델의 4번째 계층에서 데이터의 종단 간(end-to-end) 전송을 담당하는 통신 규약의 집합입니다. 네트워크 계층이 호스트 간 논리적 주소(IP 주소)를 통해 패킷을 라우팅하는 역할을 한다면, 전송 계층은 특정 응용 프로그램 프로세스 간의 논리적 연결을 설정하고 관리하여 신뢰성 있는 데이터 전달을 보장합니다.
현대 인터넷의 핵심인 TCP/IP 모델에서도 전송 계층은 가장 중요한 구성 요소 중 하나로, 주로 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)가 널리 사용됩니다. 이 두 프로토콜은 서로 다른 특성을 지니고 있어, 응용 프로그램의 요구 사항에 따라 선택되어 사용됩니다.
주요 전송 계층 프로토콜
전송 계층에는 다양한 프로토콜이 존재하지만, 인터넷에서 가장 보편적으로 사용되는 두 가지 프로토콜인 TCP와 UDP를 중심으로 설명합니다.
1. TCP (Transmission Control Protocol)
TCP는 연결 지향적(Connection-oriented)이고 신뢰성 있는(Reliable) 프로토콜입니다. 데이터 전송 전에 송신자와 수신자 간에 3-way handshake(3회 손잡기) 과정을 통해 가상 회선을 설정하며, 전송이 완료되면 연결을 해제합니다.
-
주요 특징:
- 신뢰성 보장: 데이터의 손실, 중복, 순서 뒤바뀜을 방지하기 위해 확인 응답(Acknowledgment), 재전송, 순서 제어 메커니즘을 사용합니다.
- 흐름 제어 및 혼잡 제어: 수신자의 처리 능력과 네트워크의 혼잡 상태를 고려하여 데이터 전송 속도를 조절합니다.
- 바이트 스트림 지향: 데이터를 바이트 단위의 연속된 스트림으로 처리합니다.
-
적합한 사용 사례:
- 웹 페이지 로딩 (HTTP/HTTPS)
- 이메일 전송 (SMTP, POP3, IMAP)
- 파일 전송 (FTP, SFTP)
- 데이터베이스 연결 등 데이터의 정확성이 최우선인 경우
2. UDP (User Datagram Protocol)
UDP는 비연결 지향적(Connectionless)이고 신뢰성을 최소화한 프로토콜입니다. 별도의 연결 설정 과정 없이 데이터를 바로 전송하며, 데이터의 도착 여부와 순서를 보장하지 않습니다. 대신 TCP에 비해 오버헤드가 적어 속도가 빠릅니다.
-
주요 특징:
- 저지연성: 연결 설정 및 해제 과정이 없어 실시간성이 중요한 애플리케이션에 적합합니다.
- 경량화: 헤더 크기가 작아(8바이트) 네트워크 대역폭을 효율적으로 사용합니다.
- 다중화 지원: 하나의 소스 포트에서 여러 목적지 포트나 그 반대로의 통신이 용이합니다.
-
적합한 사용 사례:
- 실시간 비디오/오디오 스트리밍 (VoIP, 화상 회의)
- 온라인 게임 (빠른 반응 속도 요구)
- DNS 조회 (빠른 응답 필요)
- DHCP 및 SNMP 등
프로토콜 비교 요약
다음 표는 TCP와 UDP의 주요 차이점을 비교한 것입니다.
| 특징 |
TCP (Transmission Control Protocol) |
UDP (User Datagram Protocol) |
| 연결 방식 |
연결 지향적 (Connection-oriented) |
비연결 지향적 (Connectionless) |
| 신뢰성 |
높음 (손실 시 재전송) |
낮음 (손실 시 재전송 없음) |
| 순서 보장 |
있음 |
없음 |
| 흐름/혼잡 제어 |
있음 |
없음 |
| 헤더 크기 |
20~60 바이트 |
8 바이트 |
| 전송 속도 |
상대적으로 느림 |
빠름 |
| 통신 방식 |
단방향 또는 양방향 (전용 회선) |
단방향, 다중 방송, 브로드캐스트 가능 |
기타 전송 계층 프로토콜
TCP와 UDP 외에도 특수한 목적을 가진 프로토콜들이 존재합니다.
- SCTP (Stream Control Transmission Protocol): TCP의 신뢰성과 UDP의 다중화 기능을 결합한 프로토콜로, 신호 전달 시스템(SS7)의 인터넷 이전 등 통신망에서 주로 사용됩니다.
- DCCP (Datagram Congestion Control Protocol): UDP처럼 비연결 지향적이지만, TCP처럼 혼잡 제어를 지원하는 프로토콜로, 실시간 미디어 스트리밍 등에 활용됩니다.
결론
전송 계층 프로토콜은 응용 프로그램이 네트워크의 복잡성으로부터 독립적으로 통신할 수 있도록 하는 추상화 계층입니다. 개발자는 응용 프로그램의 요구 사항(신뢰성 vs 속도)에 따라 TCP나 UDP를 적절히 선택해야 합니다. 일반적으로 데이터의 무결성이 중요한 경우 TCP를, 실시간성과 낮은 지연 시간이 중요한 경우 UDP를 선택하는 것이 표준 관행입니다. 최근에는 QUIC 프로토콜과 같이 HTTP/3의 기반으로 UDP를 활용하면서도 TCP 수준의 신뢰성을 제공하는 새로운 프로토콜들도 등장하고 있어, 전송 계층 기술은 지속적으로 진화하고 있습니다.
참고 자료 및 관련 문서
# 전송 계층 프로토콜
## 개요
**전송 계층 프로토콜**(Transport Layer Protocol)은 OSI(Open Systems Interconnection) 참조 모델의 4번째 계층에서 데이터의 종단 간(end-to-end) 전송을 담당하는 통신 규약의 집합입니다. 네트워크 계층이 호스트 간 논리적 주소(IP 주소)를 통해 패킷을 라우팅하는 역할을 한다면, 전송 계층은 특정 응용 프로그램 프로세스 간의 논리적 연결을 설정하고 관리하여 신뢰성 있는 데이터 전달을 보장합니다.
현대 인터넷의 핵심인 TCP/IP 모델에서도 전송 계층은 가장 중요한 구성 요소 중 하나로, 주로 **TCP**(Transmission Control Protocol)와 **UDP**(User Datagram Protocol)가 널리 사용됩니다. 이 두 프로토콜은 서로 다른 특성을 지니고 있어, 응용 프로그램의 요구 사항에 따라 선택되어 사용됩니다.
## 주요 전송 계층 프로토콜
전송 계층에는 다양한 프로토콜이 존재하지만, 인터넷에서 가장 보편적으로 사용되는 두 가지 프로토콜인 TCP와 UDP를 중심으로 설명합니다.
### 1. TCP (Transmission Control Protocol)
TCP는 **연결 지향적**(Connection-oriented)이고 **신뢰성 있는**(Reliable) 프로토콜입니다. 데이터 전송 전에 송신자와 수신자 간에 3-way handshake(3회 손잡기) 과정을 통해 가상 회선을 설정하며, 전송이 완료되면 연결을 해제합니다.
* **주요 특징**:
* **신뢰성 보장**: 데이터의 손실, 중복, 순서 뒤바뀜을 방지하기 위해 확인 응답(Acknowledgment), 재전송, 순서 제어 메커니즘을 사용합니다.
* **흐름 제어 및 혼잡 제어**: 수신자의 처리 능력과 네트워크의 혼잡 상태를 고려하여 데이터 전송 속도를 조절합니다.
* **바이트 스트림 지향**: 데이터를 바이트 단위의 연속된 스트림으로 처리합니다.
* **적합한 사용 사례**:
* 웹 페이지 로딩 (HTTP/HTTPS)
* 이메일 전송 (SMTP, POP3, IMAP)
* 파일 전송 (FTP, SFTP)
* 데이터베이스 연결 등 데이터의 정확성이 최우선인 경우
### 2. UDP (User Datagram Protocol)
UDP는 **비연결 지향적**(Connectionless)이고 **신뢰성을 최소화한** 프로토콜입니다. 별도의 연결 설정 과정 없이 데이터를 바로 전송하며, 데이터의 도착 여부와 순서를 보장하지 않습니다. 대신 TCP에 비해 오버헤드가 적어 속도가 빠릅니다.
* **주요 특징**:
* **저지연성**: 연결 설정 및 해제 과정이 없어 실시간성이 중요한 애플리케이션에 적합합니다.
* **경량화**: 헤더 크기가 작아(8바이트) 네트워크 대역폭을 효율적으로 사용합니다.
* **다중화 지원**: 하나의 소스 포트에서 여러 목적지 포트나 그 반대로의 통신이 용이합니다.
* **적합한 사용 사례**:
* 실시간 비디오/오디오 스트리밍 (VoIP, 화상 회의)
* 온라인 게임 (빠른 반응 속도 요구)
* DNS 조회 (빠른 응답 필요)
* DHCP 및 SNMP 등
## 프로토콜 비교 요약
다음 표는 TCP와 UDP의 주요 차이점을 비교한 것입니다.
| 특징 | TCP (Transmission Control Protocol) | UDP (User Datagram Protocol) |
| :--- | :--- | :--- |
| **연결 방식** | 연결 지향적 (Connection-oriented) | 비연결 지향적 (Connectionless) |
| **신뢰성** | 높음 (손실 시 재전송) | 낮음 (손실 시 재전송 없음) |
| **순서 보장** | 있음 | 없음 |
| **흐름/혼잡 제어** | 있음 | 없음 |
| **헤더 크기** | 20~60 바이트 | 8 바이트 |
| **전송 속도** | 상대적으로 느림 | 빠름 |
| **통신 방식** | 단방향 또는 양방향 (전용 회선) | 단방향, 다중 방송, 브로드캐스트 가능 |
## 기타 전송 계층 프로토콜
TCP와 UDP 외에도 특수한 목적을 가진 프로토콜들이 존재합니다.
* **SCTP (Stream Control Transmission Protocol)**: TCP의 신뢰성과 UDP의 다중화 기능을 결합한 프로토콜로, 신호 전달 시스템(SS7)의 인터넷 이전 등 통신망에서 주로 사용됩니다.
* **DCCP (Datagram Congestion Control Protocol)**: UDP처럼 비연결 지향적이지만, TCP처럼 혼잡 제어를 지원하는 프로토콜로, 실시간 미디어 스트리밍 등에 활용됩니다.
## 결론
전송 계층 프로토콜은 응용 프로그램이 네트워크의 복잡성으로부터 독립적으로 통신할 수 있도록 하는 추상화 계층입니다. 개발자는 응용 프로그램의 요구 사항(신뢰성 vs 속도)에 따라 TCP나 UDP를 적절히 선택해야 합니다. 일반적으로 데이터의 무결성이 중요한 경우 TCP를, 실시간성과 낮은 지연 시간이 중요한 경우 UDP를 선택하는 것이 표준 관행입니다. 최근에는 QUIC 프로토콜과 같이 HTTP/3의 기반으로 UDP를 활용하면서도 TCP 수준의 신뢰성을 제공하는 새로운 프로토콜들도 등장하고 있어, 전송 계층 기술은 지속적으로 진화하고 있습니다.
## 참고 자료 및 관련 문서
* [OSI 참조 모델](https://ko.wikipedia.org/wiki/OSI_참조_모델)
* [TCP/IP 모델](https://ko.wikipedia.org/wiki/TCP/IP)
* [RFC 793 - Transmission Control Protocol](https://www.rfc-editor.org/rfc/rfc793)
* [RFC 768 - User Datagram Protocol](https://www.rfc-editor.org/rfc/rfc768)